1.1.1 -
Algorithme Lanman :
Pour être chiffré, le mot de passe est mis en majuscules et
complété par des zéros s'il faisait moins de quatorze
caractères. Ensuite, la chaîne
0x4B,0x47,0x53,0x21,0x40,0x23,0x24,0x25 est cryptée avec les sept
premiers caractères du mot de passe par du DES pour former la
première partie du mot de passe chiffré. De manière
indépendante, cette même chaîne est chiffrée avec les
sept caractères suivants pour former la seconde partie du mot de passe.
Le DES, Data Encryption Standard, est un algorithme de chiffrage par bloc datant
des années 70 fonctionnant avec une clé de 56 bits. Il a
déjà fait l'objet d'une présentation dans un
précédent Pirate Mag.
mot de passe =
"PaSswOrd"
|| Mise en majuscule,
||
on complète avec des zéros
\/
PASSWORD,0,0,0,0,0,0
|| ||
\/ \/
PASSWOR D,0,0,0,0,0,0
|| || Chiffrement DES de la constante
||
|| 0x4B,0x47,0x53,0x21,0x40,0x23,0x24,0x25
\/
\/
e5 2c ac 67 41 9a 9a 22 4a 3b 10 8f 3f a6 cb 6d
||
Concaténation
\/
e5 2c ac 67 41 9a 9a 22 4a 3b 10 8f 3f a6 cb
6d
Cette forme cryptée s'appelle le LANMAN hash. Elle est apparue
dans Windows 3.11 pour Workgroup.
Cette méthode de chiffrement
présente plusieurs faiblesses:
- Un même mot de passe a toujours la même forme codée.
Chercher à casser un mot de passe ou un millier est aussi rapide: il
suffit de chiffrer le mot de passe une fois et de comparer sa forme
cryptée avec les différents comptes à casser. Effectuer une
comparaison ou un millier prend quasiment le même temps (progression
logarithmique), temps négligeable devant celui du chiffrement proprement
dit.
- Les mots de passe de sept caractères ou moins sont directement
repérables. Leurs formes LANMAN se terminent toujours par aa d3 b4 35 b5
14 04 ee: chiffrement DES de la constante
0x4B,0x47,0x53,0x21,0x40,0x23,0x24,0x25 par la chaîne 0,0,0,0,0,0,0.
- L'espace de recherche est restreint: pas de minuscule. Des attaques par
force brute sont envisageables.
Certaines personnes voulaient
savoir d'où venait la constante, si son choix était important pour
la sécurité de l'algorithme. Ce n'est pas le cas. Par exemple,
sous Linux et de nombreux Unix, la constante cryptée par du DES est
formée uniquement de 0, difficile de faire plus simple.